home *** CD-ROM | disk | FTP | other *** search
/ Quick PC 61 / Quick PC 61.iso / I386 / UDDIWEB.MSI / results.aspx < prev    next >
Encoding:
Text File  |  2003-02-21  |  12.4 KB  |  465 lines

  1. <!-- ############################################################################ -->
  2. <!-- ## UDDI Services                                                          ## -->
  3. <!-- ## Copyright (c) Microsoft Corporation.  All rights reserved.             ## -->
  4. <!-- ############################################################################ -->
  5.  
  6. <%@ Page Language='C#' Inherits='UDDI.Web.UddiPage' %>
  7. <%@ Register TagPrefix='uddi' Namespace='UDDI.Web' Assembly='uddi.web' %>
  8. <%@ Register Tagprefix='uddi' Tagname='Header' Src='../controls/header.ascx' %>
  9. <%@ Register Tagprefix='uddi' Tagname='Footer' Src='../controls/footer.ascx' %>
  10. <%@ Register Tagprefix='uddi' Tagname='Explorer' Src='../controls/explorer.ascx' %>
  11. <%@ Register Tagprefix='uddi' Tagname='BreadCrumb' Src='../controls/breadcrumb.ascx' %>
  12. <%@ Import Namespace='System.Data' %>
  13. <%@ Import Namespace='UDDI' %>
  14. <%@ Import Namespace='UDDI.API' %>
  15. <%@ Import Namespace='UDDI.API.Business' %>
  16. <%@ Import Namespace='UDDI.API.Service' %>
  17. <%@ Import Namespace='UDDI.API.ServiceType' %>
  18.  
  19. <script language='C#' runat='server'>
  20.     protected CacheObject cache;
  21.     protected string searchID;
  22.     protected string bgcolor;
  23.     protected string cssClass;
  24.     protected string margin;
  25.     
  26.     protected void Page_Init( object sender, EventArgs e )
  27.     {
  28.         Response.Expires = -1;
  29.         Response.AddHeader( "Cache-Control", "no-cache" );
  30.         Response.AddHeader( "Pragma", "no-cache" );
  31.  
  32.         searchID = Request[ "search" ];
  33.         
  34.         if( null == searchID )
  35.             Response.Redirect( "default.aspx" );
  36.                 
  37.         cache = SessionCache.Get( searchID );
  38.         
  39.         if( !UddiBrowser.IsDownlevel )
  40.         {    
  41.             cssClass = "explorerFrame";
  42.             bgcolor = "#eeeeee";
  43.             margin = "5";
  44.             
  45.             explorerTab.Visible = true;
  46.             
  47.             breadcrumb.Visible = false;
  48.  
  49.             //tabs.Style.Height = Unit.Percentage( 100 );
  50.             tabs.Style.Width = Unit.Percentage( 100 );
  51.             tabs.TabGapStyle.Height = Unit.Pixel( 25 );
  52.             tabs.TabBodyStyle.Height = Unit.Percentage( 100 );
  53.             tabs.TabBodyStyle.CssClass = "tabPage";
  54.         }
  55.         else
  56.         {
  57.             cssClass = "viewFrame";
  58.             bgcolor = "#ffffff";
  59.             margin = "0";
  60.             nsspacer.Style.Add( "padding", "10" );
  61.             
  62.             explorerTab.Visible = false;
  63.             
  64.             breadcrumb.Visible = true;
  65.         }
  66.                 
  67.         if( null != cache )
  68.         {
  69.             switch( cache.FindType )
  70.             {
  71.                 case "find_service":
  72.                     grid.Columns[ 1 ].HeaderText = Localization.GetString( "HEADING_SERVICE_NAME" );
  73.                     break;
  74.             
  75.                 case "find_business":
  76.                     grid.Columns[ 1 ].HeaderText = Localization.GetString( "HEADING_BUSINESS_NAME" );
  77.                     break;
  78.                     
  79.                 case "find_tModel":
  80.                     grid.Columns[ 1 ].HeaderText = Localization.GetString( "HEADING_TMODEL_NAME" );
  81.                     break;
  82.             }
  83.         }
  84.         
  85.         PageStyle.CssClass = cssClass;
  86.         PageStyle.BackgroundColor = bgcolor;
  87.         PageStyle.MarginHeight = margin;
  88.         PageStyle.MarginWidth = margin;
  89.         PageStyle.LeftMargin = margin;
  90.         PageStyle.TopMargin = margin;
  91.         
  92.     }
  93.     
  94.     protected void Page_Load( object sender, EventArgs e )
  95.     {        
  96.         breadcrumb.AddBlurb( Localization.GetString( "HEADING_SEARCH_RESULTS" ), null, null, null, false );
  97.         
  98.         if( !Page.IsPostBack )
  99.         {
  100.             entityKey.Text = null;
  101.             PopulateDataGrid();
  102.         }
  103.     }
  104.     
  105.     protected void Grid_OnItemCommand( object sender, DataGridCommandEventArgs e )
  106.     {
  107.         switch( e.CommandName.ToLower() )
  108.         {
  109.             case "navigate":
  110.                 entityKey.Text = ((DataBoundLiteralControl)e.Item.Cells[ 0 ].Controls[ 0 ]).Text.Trim();
  111.                 
  112.                 if( !UddiBrowser.IsDownlevel )
  113.                 { 
  114.                     tabs.SelectedIndex = 1;
  115.                     PopulateTreeView();        
  116.                 }
  117.                 else
  118.                 {
  119.                     string key = entityKey.Text;
  120.                     
  121.                     switch( cache.FindType )
  122.                     {
  123.                         case "find_service":
  124.                             Response.Redirect( "../details/servicedetail.aspx?search=" + searchID + "&frames=false&key=" + key );
  125.                             break;
  126.                             
  127.                         case "find_business":
  128.                             Response.Redirect( "../details/businessdetail.aspx?search=" + searchID + "&frames=false&key=" + key );
  129.                             break;
  130.                             
  131.                         case "find_tModel":
  132.                             Response.Redirect( "../details/modeldetail.aspx?search=" + searchID + "&frames=false&key=" + key );
  133.                             break;
  134.                     }
  135.                 }
  136.                 
  137.                 break;
  138.         }
  139.     }
  140.  
  141.     protected void PopulateTreeView()
  142.     {
  143.         BusinessEntity business = new BusinessEntity();
  144.         TModel tModel = new TModel();
  145.         
  146.         EntityBase parent;
  147.         
  148.         string key = entityKey.Text;
  149.         
  150.         if( Utility.StringEmpty( key ) || null == cache )
  151.         {
  152.             noSearch.Visible = true;
  153.             return;
  154.         }
  155.         
  156.         noSearch.Visible = false;
  157.  
  158.         switch( cache.FindType )
  159.         {
  160.             case "find_service":
  161.                 BusinessService service = new BusinessService();
  162.  
  163.                 service.ServiceKey = key;
  164.                 service.Get();
  165.                 
  166.                 explorer.Initialize( service );
  167.                 
  168.                 Page.RegisterClientScriptBlock(
  169.                     "ReloadView",
  170.                     ClientScripts.ReloadViewPane( "../details/servicedetail.aspx?search=" + searchID + "&frames=true&key=" + key ) );
  171.                     
  172.                 break;
  173.                 
  174.             case "find_business":
  175.                 business.BusinessKey = key;
  176.                 business.Get();
  177.                 
  178.                 explorer.Initialize( business );
  179.                 
  180.                 Page.RegisterClientScriptBlock(
  181.                     "ReloadView",
  182.                     ClientScripts.ReloadViewPane( "../details/businessdetail.aspx?search=" + searchID + "&frames=true&key=" + key ) );
  183.                     
  184.                 break;
  185.                 
  186.             case "find_tModel":
  187.                 tModel.TModelKey = key;
  188.                 tModel.Get();
  189.                 
  190.                 explorer.Initialize( tModel );
  191.                 
  192.                 Page.RegisterClientScriptBlock(
  193.                     "ReloadView",
  194.                     ClientScripts.ReloadViewPane( "../details/modeldetail.aspx?search=" + searchID + "&frames=true&key=" + key ) );
  195.                 
  196.                 break;
  197.         }
  198.     }
  199.     
  200.     protected void TabControl_OnTabPageChange( object sender, int oldIndex, int newIndex )
  201.     {
  202.         switch( newIndex )
  203.         {
  204.             case 0:
  205.                 PopulateDataGrid();
  206.                 break;
  207.                 
  208.             case 1:
  209.                 PopulateTreeView();
  210.                 break;            
  211.         }
  212.     }    
  213.     
  214.     protected void Grid_OnPageIndexChange( object sender, DataGridPageChangedEventArgs e )
  215.     {
  216.         grid.CurrentPageIndex = e.NewPageIndex;
  217.         PopulateDataGrid();
  218.     }
  219.     
  220.         
  221.     protected void PopulateDataGrid()
  222.     {
  223.         int records = 0;
  224.         
  225.         if( null == cache )
  226.         {
  227.             count.Text = Localization.GetString( "TEXT_NO_SEARCH" );
  228.             grid.Visible = false;
  229.  
  230.             return;
  231.         }
  232.         
  233.         switch( cache.FindType )
  234.         {
  235.             case "find_service":
  236.                 ServiceList serviceList = cache.FindService.Find();
  237.                 
  238.                 grid.DataSource = serviceList.ServiceInfos;
  239.                 grid.DataBind();
  240.                 
  241.                 records = serviceList.ServiceInfos.Count;
  242.  
  243.                 break;
  244.         
  245.             case "find_business":
  246.                 BusinessList businessList = cache.FindBusiness.Find();
  247.                 
  248.                 grid.DataSource = businessList.BusinessInfos;
  249.                 grid.DataBind();
  250.                 
  251.                 records = businessList.BusinessInfos.Count;
  252.                 
  253.                 break;
  254.  
  255.             case "find_tModel":
  256.                 TModelList tModelList = cache.FindTModel.Find();
  257.                 
  258.                 grid.DataSource = tModelList.TModelInfos;
  259.                 grid.DataBind();
  260.                 
  261.                 records = tModelList.TModelInfos.Count;
  262.                 
  263.                 break;
  264.         }
  265.         
  266.         count.Text = String.Format( Localization.GetString( "TEXT_RECORD_COUNT" ), records );
  267.         grid.Visible = ( records > 0 );        
  268.     }
  269.  
  270.     protected string GetKey( object info )
  271.     {
  272.         if( info is ServiceInfo )
  273.             return ((ServiceInfo)info).ServiceKey;
  274.         else if( info is BusinessInfo )
  275.             return ((BusinessInfo)info).BusinessKey;
  276.         else if( info is TModelInfo )
  277.             return ((TModelInfo)info).TModelKey;
  278.             
  279.         return null;
  280.     }
  281.     
  282.     protected string GetName( object info )
  283.     {
  284.         if( info is ServiceInfo )
  285.             return HttpUtility.HtmlEncode( ((ServiceInfo)info).Names[ 0 ].Value );
  286.         else if( info is BusinessInfo )
  287.             return HttpUtility.HtmlEncode( ((BusinessInfo)info).Names[ 0 ].Value );
  288.         else if( info is TModelInfo )
  289.             return HttpUtility.HtmlEncode( ((TModelInfo)info).Name );
  290.  
  291.         return null;
  292.     }
  293.     
  294.     protected string GetDescription( object info )
  295.     {
  296.         DescriptionCollection descriptions;
  297.         
  298.         if( info is BusinessInfo )
  299.         {
  300.             descriptions = ((BusinessInfo)info).Descriptions;        
  301.         }
  302.         else
  303.         {
  304.             descriptions = new DescriptionCollection();
  305.             
  306.             if( info is ServiceInfo )
  307.                 descriptions.Get( ((ServiceInfo)info).ServiceKey, EntityType.BusinessService );
  308.             else if( info is TModelInfo )
  309.                 descriptions.Get( ((TModelInfo)info).TModelKey, EntityType.TModel );
  310.         }
  311.         
  312.         foreach( Description description in descriptions )
  313.         {
  314.             if( UDDI.Context.User.IsoLangCode == description.IsoLangCode )
  315.                 return description.Value;
  316.         }
  317.         
  318.         return null;
  319.     }
  320. </script>
  321. <uddi:StyleSheetControl
  322.     Runat='server'
  323.     Default='../stylesheets/uddi.css' 
  324.     Downlevel='../stylesheets/uddidl.css' 
  325.     />
  326. <uddi:PageStyleControl 
  327.     Runat='server'
  328.     OnClientContextMenu='Document_OnContextMenu()'
  329.     OnClientLoad='Window_OnLoad()'
  330.     OnClientBeforeUnload='Window_OnBeforeUnload()'
  331.     ShowFooter='false'
  332.     Title="TITLE"
  333.     AltTitle="TITLE_ALT"
  334.     />
  335.  
  336. <uddi:ClientScriptRegister
  337.     Runat='server' 
  338.     Language='javascript'>
  339.     <!--
  340.         function Window_OnBeforeUnload()
  341.         {
  342.             var loading = document.getElementById( "loading" );
  343.             var content = document.getElementById( "content" );
  344.     
  345.             if( null != loading )
  346.                 loading.style.display = "";
  347.     
  348.             if( null != content )
  349.                 content.style.display = "none";
  350.         }
  351.     
  352.         function Window_OnLoad()
  353.         {
  354.         }
  355.     
  356.         function Document_OnContextMenu()
  357.         {
  358.             var e = window.event;
  359.             
  360.             e.cancelBubble = true;
  361.             e.returnValue = false;
  362.         }
  363.     //-->
  364.     </uddi:ClientScriptRegister>    
  365. <uddi:SecurityControl 
  366.     UserRequired='true'
  367.     Runat='server' 
  368.     />
  369. <form runat='server'>
  370.  
  371. <table width='100%' border='0' height='100%' cellpadding='0' cellspacing='0'>
  372.         <asp:PlaceHolder
  373.             Id='HeaderBag'
  374.             Runat='server'
  375.             >
  376.             <tr height='95'>
  377.                 <td>
  378.                     <!-- Header Control Here -->
  379.                     <uddi:Header
  380.                         Runat='server' 
  381.                         />
  382.                 </td>
  383.             </tr>
  384.         </asp:PlaceHolder>
  385.         <tr height='100%' valign='top'>
  386.             <td>
  387.                 <uddi:BreadCrumb 
  388.                     Id='breadcrumb' 
  389.                     Runat='server' 
  390.                     />
  391.                 <div id='nsspacer' Runat='server'>
  392.                     <uddi:TabControl ID='tabs'
  393.                             OnTabChange='TabControl_OnTabPageChange'
  394.                             Runat='server'>                
  395.                         
  396.                         <uddi:TabPage Name='TAB_FIND_RESULTS' Runat='server'>
  397.                             <div id='loading' style='padding: 15px; display: none'>
  398.                                 <%=UDDI.Localization.GetString( "TEXT_LOADING" )%>
  399.                             </div>
  400.                     
  401.                             <div id='content'>
  402.                                 <asp:DataGrid ID='grid' AutoGenerateColumns='false' Width='100%' Border='0' Cellpadding='2' Cellspacing='0' ItemStyle-VerticalAlign='top' OnItemCommand='Grid_OnItemCommand' OnPageIndexChanged='Grid_OnPageIndexChange' AllowPaging='true' PageSize='7' Visible='false' Runat='server'>
  403.                                     <EditItemStyle CssClass='tableEditItem' />
  404.                                     <HeaderStyle CssClass='tableHeader' />
  405.                                     <ItemStyle CssClass='tableItem' />    
  406.                                     <AlternatingItemStyle CssClass='tableAlternatingItem' />
  407.                                     <FooterStyle CssClass='tableFooter' />
  408.                                     <PagerStyle Mode='NumericPages' HorizontalAlign='Left' CssClass='pager' PageButtonCount='10' />
  409.                                     <Columns>
  410.                                         <asp:TemplateColumn Visible='false'>
  411.                                             <ItemTemplate>
  412.                                                 <%# GetKey( Container.DataItem ) %>
  413.                                             </ItemTemplate>
  414.                                         </asp:TemplateColumn>
  415.                                         
  416.                                         <asp:TemplateColumn>
  417.                                             <ItemTemplate>
  418.                                                 <nobr>
  419.                                                     <%# grid.CurrentPageIndex * grid.PageSize + Container.ItemIndex + 1 %>.
  420.                                                     <asp:LinkButton
  421.                                                         CommandName='navigate'
  422.                                                         Text='<%# GetName( Container.DataItem ) %>'
  423.                                                         ToolTip='<%# GetName( Container.DataItem ) %>'
  424.                                                         Runat='server' /></nobr><br>
  425.                                                 <uddi:UddiLabel Text='<%# GetDescription( Container.DataItem ) %>' Runat='server' />
  426.                                             </ItemTemplate>
  427.                                         </asp:TemplateColumn>        
  428.                                     </Columns>
  429.                                 </asp:DataGrid><br>
  430.                                 <asp:Label ID='count' Runat='server' />
  431.                             </div>
  432.                         </uddi:TabPage>
  433.                         
  434.                         <uddi:TabPage ID='explorerTab' Name='TAB_EXPLORER' Runat='server'>
  435.                             <div id='loading' style='padding: 15px; display: none'>
  436.                                 <%=UDDI.Localization.GetString( "TEXT_LOADING" )%>
  437.                             </div>
  438.                     
  439.                             <div id='content'>
  440.                                 <uddi:LocalizedLabel ID='noSearch' Name='TEXT_NO_SEARCH' Runat='server' />
  441.                                 <uddi:Explorer ID='explorer' Runat='server' />
  442.                             </div>
  443.                         </uddi:TabPage>    
  444.                     </uddi:TabControl>
  445.             
  446.                     <asp:Label ID='entityKey' Visible='false' Runat='server' />                            
  447.                 </div>
  448.                 <br>
  449.             </td>
  450.         </tr>
  451.         <asp:PlaceHolder 
  452.             Id='FooterBag'
  453.             Runat='server'
  454.             >
  455.             <tr height='95'>
  456.                 <td>
  457.                     <!-- Footer Control Here -->
  458.                     <uddi:Footer
  459.                         Runat='server' 
  460.                         />
  461.                 </td>
  462.             </tr>
  463.         </asp:PlaceHolder>
  464.     </table> 
  465. </form>